package com.yunke.dto.circle;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.util.List;

/**
 * 发布动态DTO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(description = "发布动态请求")
public class YunkeCirclePublishDto {

    /**
     * 动态类型：1-纯文字 2-图片 3-视频 4-图文
     */
    @NotNull(message = "动态类型不能为空")
    @Schema(description = "动态类型：1-纯文字 2-图片 3-视频 4-图文", example = "1")
    private Integer type;

    /**
     * 动态内容
     */
    @NotBlank(message = "动态内容不能为空")
    @Size(max = 2000, message = "动态内容不能超过2000个字符")
    @Schema(description = "动态内容", example = "今天天气真不错，心情也很好！")
    private String content;

    /**
     * 图片地址列表
     */
    @Schema(description = "图片地址列表")
    private List<String> images;

    /**
     * 视频地址
     */
    @Schema(description = "视频地址")
    private String video;

    /**
     * 视频封面图
     */
    @Schema(description = "视频封面图")
    private String videoCover;

    /**
     * 定位地址
     */
    @Schema(description = "定位地址", example = "北京市朝阳区")
    private String location;

    /**
     * 经度
     */
    @Schema(description = "经度", example = "116.407526")
    private Double longitude;

    /**
     * 纬度
     */
    @Schema(description = "纬度", example = "39.904030")
    private Double latitude;

    /**
     * 是否允许评论：0-不允许 1-允许
     */
    @Schema(description = "是否允许评论：0-不允许 1-允许", example = "1")
    private Integer allowComment = 1;

    /**
     * 可见范围：1-所有人可见 2-仅好友可见 3-仅自己可见
     */
    @Schema(description = "可见范围：1-所有人可见 2-仅好友可见 3-仅自己可见", example = "1")
    private Integer visibility = 1;
} 